abstract class ValuePairBase {
  public key: Dictionary.TTableKey;
  public value:any;

  public constructor(key: Dictionary.TTableKey, value: any) {
    this.key = key;
    this.value= value;
  }

  public abstract toString(): string;
}

export class ValuePairDic extends ValuePairBase {
  public constructor(key: Dictionary.TDicTableKey, value: any) {
    super(key, value);
  }

  public toString() {
    return `${this.key}:${this.value}`;
  }
}

export class ValuePairHash extends ValuePairBase {
  public constructor(key: Dictionary.TTableKey, value: any) {
    super(key, value);
  }

  public toString() {
    return `${this.key}:${this.value}`;
  }
}